package com.bnz.config;

import com.alibaba.druid.pool.DruidDataSource;
import com.bnz.properties.JdbcProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.sql.DataSource;

/**
 * 配置类
 * 这个比JdbcConfig2更加灵活
 */

@EnableConfigurationProperties(JdbcProperties.class) //相当于是把JdbcProperties放进spring容器中
@Configuration // 将想要的组件添加到容器中
public class JdbcConfig {

    @Bean // 代表可以直接拿DruidDataSource
    // JdbcProperties jdbcProperties 参数中被spring容器注值
    public DruidDataSource dataSource(JdbcProperties jdbcProperties){ // 把spring容器中的bean拿出，相当于@Autowired
        // 连接池
        DruidDataSource source = new DruidDataSource();
        // 获取配置文件中的地址
        source.setUrl(jdbcProperties.getUrl());
        // 获取配置文件中的驱动
        source.setDriverClassName(jdbcProperties.getDriverClassName());
        // 获取配置文件中的用户名
        source.setUsername(jdbcProperties.getUsername());
        // 获取配置文件中的密码
        source.setPassword(jdbcProperties.getPassword());
        // 返回设置了的连接池信息
        return source;
    }
}
